package 顺序表.练习;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class 杨辉三角 {
    public static void main(String[] args) {
        int n = 3;
        List<List<Integer>> lists = new ArrayList<>();
        //第1行的内容
        List<Integer> list = new ArrayList<>();
        list.add(1);
        //第一行
        lists.add(list);
        //从第二行开始的剩余部分
        for (int i = 1; i < n; i++) {
            List<Integer> list1 = new ArrayList<>();
            //第一个位置
            list1.add(1);
            //获取上一行的元素
            //中间部分
            List<Integer> prelist = lists.get(i-1);
            for (int j = 1; j < i; j++) {
                int x = prelist.get(j)+prelist.get(j-1);
                list1.add(x);
            }
           //最后一个位置
           list1.add(1);

            //将新生成的这一行元素放入
            lists.add(list1);
        }
        System.out.println(lists);
    }
}

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> lists = new ArrayList<>();
        List<Integer> curlist = new ArrayList<>();
        curlist.add(1);
        //第一行
        lists.add(curlist);
        //剩余部分
        for (int i = 1; i < numRows; i++) {
            List<Integer> nowlist = new ArrayList<>();
            //第一个
            nowlist.add(1);
            //中间
            List<Integer> prelist = lists.get(i-1);
            for (int j = 1; j < i; j++) {
                int x = prelist.get(j)+prelist.get(j-1);
                nowlist.add(x);
            }
            //最后一个
            nowlist.add(1);
        }
        return lists;
    }
}